package com.itheima;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/*
SpringBootConfiguration 是相当于spring配置文件需要的configuration,生成ioc配置文件的bean交给ioc容器
EnableAutoConfiguration 开启自动配置的功能，也就是把所有符合条件的bean放入ioc容器里面进行管理
有了SpringBootConfiguration EnableAutoConfiguration才可以自动配置它到ioc的容器里面。
 ComponentScan 是扫描并加载符合条件的bean到ioc容器中，这个功能可有可无，因为springboot没有它，也可以加载所有符合条件的bean到ioc容器中。
 */
@EnableCaching    //开启缓存注解功能
@EnableGlobalMethodSecurity(prePostEnabled = true)
@SpringBootApplication
@MapperScan("com.itheima.reggie.mapper")
@ServletComponentScan
//@ServletComponentScan  //ServletComponentScan是springboot自动扫描WebServlet,WebFilter,WebListener的组件扫描
@EnableTransactionManagement//在springboot的引导类上添加这个，表示开启对事务管理的支持。
public class RuijiTakeoutApplication {

    public static void main(String[] args) {
        SpringApplication.run(RuijiTakeoutApplication.class, args);
    }
}
